## 一般的，Dockerfile 分为四部分：基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令

# 设置基础镜像[base image]
FROM williamyeh/java8:latest

# 设置维护者信息/作者
MAINTAINER Jack杰克 lishuai2015@163.com

# ENV 设置环境变量【语言、添加时区环境变量，亚洲，上海】
ENV LANG=C.UTF-8
ENV TimeZone=Asia/Shanghai

# 定义匿名数据卷。在启动容器时忘记挂载数据卷，会自动挂载到匿名卷  [ 创建一个可以从本地主机或其他容器挂载的挂载点，一般用来存放数据库和需要保持的数据等 ]
VOLUME /tmp

# 复制指令，从上下文目录中复制文件或者目录到容器里指定路径  [ 当使用本地目录为源目录时，推荐使用 COPY ]
COPY ./target/*.jar jack-demo-load-resources.jar

# 同步容器与本机时间
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# [映射端口] 告诉 Docker 服务端容器暴露的端口号，供互联系统使用。在启动容器时需要通过 -P，Docker 主机会自动分配一个端口转发到指定的端口
# 作用：帮助镜像使用者理解这个镜像服务的守护端口，以方便配置映射
#      在运行时使用随机端口映射时，也就是 docker run -P 时，会自动随机映射 EXPOSE 的端口
EXPOSE 20117

# 在执行 docker run 的时候可以指定 ENTRYPOINT 运行所需的参数 [ 每个 Dockerfile 中只能有一个 ENTRYPOINT，当指定多个时，只有最后一个起效 ]
ENTRYPOINT ["java","-Xms64m","-Xmx128m","-jar","/jack-demo-load-resources.jar","&"]

